home *** CD-ROM | disk | FTP | other *** search
- #ifndef QUAD_H
- #define QUAD_H
-
- #include <string.h>
- #include <stdlib.h>
- #include <stdio.h>
-
- /*
- this file holds datastructures for quads
- they can be stored in Quad's and QuadBuffers for later processing
- and rendering
- */
-
- typedef struct Vertex {
- float v[3];
- float color[4];
- float uv[2];
- } Vertex;
-
- typedef struct Quad {
- Vertex vertex[4];
- int type;
- int texture_id;
- } Quad;
-
- typedef struct QuadBuffer {
- Quad *quads;
- int size;
- int current;
- } QuadBuffer;
-
- enum {
- QUAD_COLOR = 1,
- QUAD_TEXTURE = 2,
- QUAD_TEX_MODULATE = 4,
- QUAD_TEX_DECAL = 8
- };
-
- /* quad.c */
-
- extern void q_setColor4fv( Quad *q, int index, float color[4] );
- extern void q_setColor3f( Quad *q, int index, float r, float g, float b);
- extern void q_setColor4f( Quad *q, int index, float r, float g, float b, float a);
- extern void q_setTexCoord2f( Quad *q, int index, float u, float v );
- extern void q_setVertex3f( Quad *q, int index, float x, float y, float z);
- extern void q_setType(Quad *q, int type);
- extern QuadBuffer* createQuadBuffer(int size);
- extern void freeQuadBuffer(QuadBuffer* q );
- extern Quad* getNextQuad(QuadBuffer* q);
- extern int getCurrentQuad(QuadBuffer* q);
- extern int getQuadBufferSize(QuadBuffer *q);
- extern void renderQuadAt(QuadBuffer *q, int *index, int i);
-
- /* quadbuf.c */
- extern int* getSortedQuads(QuadBuffer *q, float eye[3]);
- extern Quad* getQuadAt(QuadBuffer *q, int index);
-
- /* extern renderer_ lib must provide this */
- extern void renderQuad(Quad* q);
- #endif
-
-